/**
 * @filename:SwitchOrderInfoService 2020年06月11日
 * @project hotel-switch  V1.0
 * Copyright(c) 2020 Zhang·JZ Co. Ltd.
 * All right reserved.
 */
package hotel.switchs.oversea.biz.service;

import hotel.base.oversea.dto.switchs.SwitchOrderInfoDto;
import hotel.base.oversea.service.BaseService;
import hotel.base.oversea.utils.Result;
import hotel.base.oversea.vo.meituan.response.order.MtHotelOrderCheckVo;
import hotel.switchs.oversea.api.VO.order.OperateDltOrder;
import hotel.switchs.oversea.api.VO.order.ReturnDltOrderInfoCheckVo;
import hotel.switchs.oversea.api.VO.request.OrderInfoVo;
import hotel.switchs.oversea.api.VO.request.RequestCheckOrderVo;
import hotel.switchs.oversea.api.VO.request.RequestOrderMotifyVo;
import hotel.switchs.oversea.api.entity.order.SwitchOrderInfo;

import java.util.List;
import java.util.Map;


/**
 * @Description:TODO(携程订单信息服务层)
 * @version: V1.0
 * @author: Zhang·JZ
 *
 */
public interface SwitchOrderInfoService extends BaseService<SwitchOrderInfo> {
    /**
     * 订单变化通知接口
     * 注：每分钟调用不得超过 10 次，分页获取
     * 定时任务建议8s调用一次
     * @param requestOrderMotifyVO
     * @return
     */
    Result<Object> getdltordernotify(RequestOrderMotifyVo requestOrderMotifyVO);

    /**
     * 订单变化通知接口 测试用接口
     * 注：每分钟调用不得超过 10 次，分页获取
     * 定时任务建议8s调用一次
     * @param map
     * @return
     */
    Result<Object> getdltordernotifyTest(Map<String, Object> map);


    /**
     * 订单详情接口
     * 注：每分钟调用不得超过 10 次
     * @param dltOrderId
     * @return
     */
    Result<Object> getdltorderinfo(String dltOrderId);



    /**
     * 订单操作接口
     * 注：每分钟调用不得超过 10 次
     * @param operateDltOrder
     * @return
     */
    Result<Object> operaterDltOrder(OperateDltOrder operateDltOrder);




    /**
     * 发单接口
     * 注：每分钟调用不得超过 10 次
     * @param dltOrderId 代理通id
     * @return
     */
    Result<Object> issueOrder(String dltOrderId);


    /**
     * 订单列表查询接口
     * 注：每分钟调用不得超过 10 次
     * @param requestCheckOrderVo
     * @return
     */
    Result<List<ReturnDltOrderInfoCheckVo>> getDltOrderList(RequestCheckOrderVo requestCheckOrderVo);


    /**
     * 操作携程和美团订单
     * @param md5key
     */
    Result<Object> operateSwitchAndMeituanOrderByOrderId(String md5key);

    /**
     * <H1>根据携程订单id获取订单详情</H1>
     *
     * @param dltOrderId
     * @return hotel.switchs.oversea.api.entity.order.SwitchOrderInfo
     * @author HuangT
     * @date 2020/7/7 21:10
    */
    SwitchOrderInfo getDltOrderInfoByDltId(String dltOrderId);

    /**
     * 修改携程订单相关根据美团下单前校验code
     * @param switchOrderInfoDto
     * @param mtHotelOrderCheckVo
     * @return
     */
    Result<Object> updateSwitchsOrderByMtBookingBeforeCode(SwitchOrderInfoDto switchOrderInfoDto, MtHotelOrderCheckVo mtHotelOrderCheckVo);

    /***
    * @Author: lmf
    * @Date: 2020/9/25
     * 统计接单时长
    */
    Result<Object> getOrderList(OrderInfoVo orderInfoVo);
    /***
    * @Author: lmf
    * @Date: 2020/9/27
     * 查看酒店的订单列表
    */
    Result<Object> orderHotelList(OrderInfoVo orderInfoVo);
}
